
<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module SatStress</title>
</head><body bgcolor="#f0f0f8">

<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong>SatStress</strong></big></big> (Tue Mar  4 16:22:03 PST 2008)</font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/Users/zane/svn/stress/pySatStress/SatStress.py">/Users/zane/svn/stress/pySatStress/SatStress.py</a></font></td></tr></table>
    <p><tt>SatStress.py&nbsp;calculates&nbsp;the&nbsp;tidal&nbsp;stresses&nbsp;on&nbsp;viscoelastic&nbsp;icy&nbsp;satellites.<br>
&nbsp;<br>
This&nbsp;Python&nbsp;module&nbsp;is&nbsp;an&nbsp;implementation&nbsp;of&nbsp;the&nbsp;model&nbsp;described&nbsp;in&nbsp;the&nbsp;Icarus<br>
paper&nbsp;"Modeling&nbsp;Stresses&nbsp;on&nbsp;Satellites&nbsp;due&nbsp;to&nbsp;Non-Synchronous&nbsp;Rotation&nbsp;and<br>
Orbital&nbsp;Eccentricity&nbsp;Using&nbsp;Gravitational&nbsp;Potential&nbsp;Theory"&nbsp;by&nbsp;Wahr&nbsp;et&nbsp;al.<br>
(2008).<br>
&nbsp;<br>
It&nbsp;defines&nbsp;several&nbsp;objects&nbsp;which&nbsp;allow&nbsp;you&nbsp;to&nbsp;calculate&nbsp;tidal&nbsp;stresses&nbsp;on&nbsp;an<br>
icy&nbsp;satellite.&nbsp;&nbsp;Rather&nbsp;that&nbsp;answering&nbsp;a&nbsp;particular&nbsp;question,&nbsp;it&nbsp;is&nbsp;meant&nbsp;to<br>
facilitate&nbsp;the&nbsp;creation&nbsp;of&nbsp;a&nbsp;variety&nbsp;of&nbsp;tools&nbsp;for&nbsp;testing&nbsp;various&nbsp;hypotheses<br>
related&nbsp;to&nbsp;lineament&nbsp;formation&nbsp;and&nbsp;tidal&nbsp;stress&nbsp;fields.&nbsp;&nbsp;It&nbsp;is&nbsp;designed&nbsp;to&nbsp;be<br>
extended&nbsp;over&nbsp;time&nbsp;to&nbsp;include&nbsp;stresses&nbsp;from&nbsp;sources&nbsp;other&nbsp;than&nbsp;orbital<br>
eccentricity&nbsp;and&nbsp;non-synchronous&nbsp;shell&nbsp;rotation.<br>
&nbsp;<br>
Use&nbsp;of&nbsp;this&nbsp;module&nbsp;requires&nbsp;that&nbsp;you&nbsp;have&nbsp;the&nbsp;Scientific&nbsp;Python&nbsp;(SciPy)&nbsp;package<br>
installed.&nbsp;&nbsp;It&nbsp;is&nbsp;available&nbsp;for&nbsp;Windows,&nbsp;Linux,&nbsp;Unix,&nbsp;and&nbsp;Mac&nbsp;OS&nbsp;X.&nbsp;&nbsp;For&nbsp;more<br>
information&nbsp;on&nbsp;SciPy&nbsp;see:<br>
&nbsp;<br>
<a href="http://www.scipy.org">http://www.scipy.org</a><br>
&nbsp;<br>
SatStress.py&nbsp;is&nbsp;copyright&nbsp;2008&nbsp;by&nbsp;Zane&nbsp;Selvans,&nbsp;and&nbsp;released&nbsp;uunder&nbsp;the&nbsp;GNU<br>
General&nbsp;Public&nbsp;License&nbsp;(GPL)&nbsp;version&nbsp;3.&nbsp;&nbsp;This&nbsp;means,&nbsp;among&nbsp;other&nbsp;things,&nbsp;that<br>
if&nbsp;you&nbsp;enhance&nbsp;the&nbsp;software&nbsp;or&nbsp;use&nbsp;it&nbsp;to&nbsp;build&nbsp;other&nbsp;tools,&nbsp;you&nbsp;must&nbsp;release<br>
your&nbsp;enhancements&nbsp;or&nbsp;tools&nbsp;under&nbsp;the&nbsp;GPL&nbsp;as&nbsp;well.&nbsp;&nbsp;For&nbsp;more&nbsp;information&nbsp;on&nbsp;the<br>
GPL&nbsp;and&nbsp;the&nbsp;full&nbsp;text&nbsp;of&nbsp;the&nbsp;license,&nbsp;see:<br>
&nbsp;<br>
<a href="http://www.gnu.org/">http://www.gnu.org/</a><br>
&nbsp;<br>
The&nbsp;most&nbsp;recent&nbsp;version&nbsp;of&nbsp;SatStress.py&nbsp;can&nbsp;be&nbsp;downloaded&nbsp;from&nbsp;the&nbsp;Subversion<br>
source&nbsp;code&nbsp;repository&nbsp;at:<br>
&nbsp;<br>
<a href="http://icymoons.com/svn/">http://icymoons.com/svn/</a><br>
&nbsp;<br>
===============================================================================</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#fffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
    
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="math.html">math</a><br>
</td><td width="25%" valign=top><a href="os.html">os</a><br>
</td><td width="25%" valign=top><a href="re.html">re</a><br>
</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
    
<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="SatStress.html#LoveNum">LoveNum</a>
</font></dt><dt><font face="helvetica, arial"><a href="SatStress.html#SatLayer">SatLayer</a>
</font></dt><dt><font face="helvetica, arial"><a href="SatStress.html#Satellite">Satellite</a>
</font></dt><dt><font face="helvetica, arial"><a href="SatStress.html#StressCalc">StressCalc</a>
</font></dt><dt><font face="helvetica, arial"><a href="SatStress.html#StressDef">StressDef</a>
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="SatStress.html#Diurnal">Diurnal</a>
</font></dt><dt><font face="helvetica, arial"><a href="SatStress.html#NSR">NSR</a>
</font></dt></dl>
</dd>
</dl>
 <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="Diurnal">class <strong>Diurnal</strong></a>(<a href="SatStress.html#StressDef">StressDef</a>)</font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>Calculate&nbsp;the&nbsp;stresses&nbsp;on&nbsp;a&nbsp;satellite&nbsp;arising&nbsp;from&nbsp;an&nbsp;eccentric&nbsp;orbit.<br>
&nbsp;<br>
A&nbsp;derived&nbsp;class&nbsp;(descends&nbsp;from&nbsp;<a href="#StressDef">StressDef</a>)&nbsp;that&nbsp;represents&nbsp;the&nbsp;stresses&nbsp;that<br>
arise&nbsp;on&nbsp;the&nbsp;surface&nbsp;of&nbsp;an&nbsp;icy&nbsp;satellite&nbsp;which&nbsp;has&nbsp;an&nbsp;eccentric&nbsp;orbit.&nbsp;&nbsp;See<br>
detailed&nbsp;discussion&nbsp;in&nbsp;Wahr&nbsp;et&nbsp;al.&nbsp;(2008).<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="Diurnal-Tpp"><strong>Tpp</strong></a>(self, r, theta, phi, t)</dt><dd><tt>Calculates&nbsp;the&nbsp;Tau_{phi&nbsp;phi}&nbsp;(east-west)&nbsp;component&nbsp;of&nbsp;the&nbsp;stress&nbsp;tensor.</tt></dd></dl>

<dl><dt><a name="Diurnal-Tpt"><strong>Tpt</strong></a>(self, r, theta, phi, t)</dt><dd><tt>Calculates&nbsp;the&nbsp;Tau_{phi&nbsp;theta}&nbsp;(off-diagonal)&nbsp;component&nbsp;of&nbsp;the&nbsp;stress&nbsp;tensor.</tt></dd></dl>

<dl><dt><a name="Diurnal-Ttt"><strong>Ttt</strong></a>(self, r, theta, phi, t)</dt><dd><tt>Calculates&nbsp;the&nbsp;Tau_{theta&nbsp;theta}&nbsp;(north-south)&nbsp;component&nbsp;of&nbsp;the&nbsp;stress&nbsp;tensor.</tt></dd></dl>

<dl><dt><a name="Diurnal-__init__"><strong>__init__</strong></a>(self, satellite)</dt><dd><tt>Sets&nbsp;the&nbsp;object's&nbsp;satellite&nbsp;and&nbsp;omega&nbsp;attributes;&nbsp;calculates&nbsp;Love&nbsp;numbers.</tt></dd></dl>

<hr>
Methods inherited from <a href="SatStress.html#StressDef">StressDef</a>:<br>
<dl><dt><a name="Diurnal-Delta"><strong>Delta</strong></a>(self)</dt><dd><tt>Delta&nbsp;=&nbsp;lame_mu/(omega*viscosity),&nbsp;a&nbsp;measure&nbsp;of&nbsp;how&nbsp;viscous&nbsp;the&nbsp;response&nbsp;is.</tt></dd></dl>

<dl><dt><a name="Diurnal-Gamma"><strong>Gamma</strong></a>(self)</dt><dd><tt>The&nbsp;constant&nbsp;capital&nbsp;Gamma&nbsp;twiddle&nbsp;(see&nbsp;Wahr&nbsp;et&nbsp;al.&nbsp;(2008)).</tt></dd></dl>

<dl><dt><a name="Diurnal-Z"><strong>Z</strong></a>(self)</dt><dd><tt>A&nbsp;constant&nbsp;that&nbsp;sits&nbsp;in&nbsp;front&nbsp;of&nbsp;many&nbsp;terms&nbsp;in&nbsp;the&nbsp;potential</tt></dd></dl>

<dl><dt><a name="Diurnal-alpha"><strong>alpha</strong></a>(self)</dt><dd><tt>The&nbsp;constant&nbsp;alpha&nbsp;twiddle&nbsp;(see&nbsp;Wah&nbsp;et&nbsp;al.&nbsp;2008):<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3*lambda&nbsp;+&nbsp;2*mu<br>
alpha&nbsp;=&nbsp;---------------<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lambda&nbsp;+&nbsp;2*mu<br>
&nbsp;<br>
Complex&nbsp;and&nbsp;frequency&nbsp;dependent,&nbsp;as&nbsp;are&nbsp;lambda&nbsp;and&nbsp;mu.</tt></dd></dl>

<dl><dt><a name="Diurnal-b1"><strong>b1</strong></a>(self)</dt><dd><tt>The&nbsp;constant&nbsp;beta&nbsp;one&nbsp;twiddle&nbsp;(see&nbsp;Wahr&nbsp;et&nbsp;al.&nbsp;(2008)).</tt></dd></dl>

<dl><dt><a name="Diurnal-b2"><strong>b2</strong></a>(self)</dt><dd><tt>The&nbsp;constant&nbsp;beta&nbsp;two&nbsp;twiddle&nbsp;(see&nbsp;Wahr&nbsp;et&nbsp;al.&nbsp;(2008)).</tt></dd></dl>

<dl><dt><a name="Diurnal-calcLove"><strong>calcLove</strong></a>(self)</dt><dd><tt>Calculate&nbsp;the&nbsp;Love&nbsp;numbers&nbsp;for&nbsp;the&nbsp;satellite&nbsp;and&nbsp;the&nbsp;given&nbsp;forcing.<br>
&nbsp;<br>
At&nbsp;the&nbsp;moment&nbsp;this&nbsp;uses&nbsp;John&nbsp;Wahr's&nbsp;Fortran&nbsp;code,&nbsp;called&nbsp;externally,<br>
which&nbsp;is&nbsp;a&nbsp;total&nbsp;hack,&nbsp;and&nbsp;should&nbsp;be&nbsp;re-implemented,&nbsp;at&nbsp;the&nbsp;very&nbsp;least,<br>
by&nbsp;using&nbsp;F2Py&nbsp;to&nbsp;generate&nbsp;an&nbsp;interface&nbsp;to&nbsp;the&nbsp;program&nbsp;for&nbsp;direct<br>
calling&nbsp;from&nbsp;within&nbsp;this&nbsp;code.&nbsp;&nbsp;Really&nbsp;it&nbsp;would&nbsp;be&nbsp;better&nbsp;to&nbsp;re-write<br>
the&nbsp;whole&nbsp;code&nbsp;in&nbsp;Python&nbsp;so&nbsp;it's&nbsp;actually&nbsp;readable.<br>
&nbsp;<br>
Assumes&nbsp;we&nbsp;have&nbsp;a&nbsp;satellite&nbsp;object&nbsp;describing&nbsp;the&nbsp;structure&nbsp;of&nbsp;the&nbsp;body,<br>
a&nbsp;frequency&nbsp;(omega)&nbsp;to&nbsp;apply,&nbsp;and&nbsp;a&nbsp;path&nbsp;to&nbsp;love2.<br>
&nbsp;<br>
Must&nbsp;be&nbsp;defined&nbsp;separately&nbsp;for&nbsp;the&nbsp;different&nbsp;forcings,&nbsp;because&nbsp;the&nbsp;core<br>
is&nbsp;treated&nbsp;differently&nbsp;in&nbsp;different&nbsp;cases&nbsp;(in&nbsp;<a href="#NSR">NSR</a>,&nbsp;it&nbsp;behaves&nbsp;like&nbsp;a<br>
fluid)</tt></dd></dl>

<dl><dt><a name="Diurnal-g1"><strong>g1</strong></a>(self)</dt><dd><tt>The&nbsp;constant&nbsp;gamma&nbsp;one&nbsp;twiddle&nbsp;(see&nbsp;Wahr&nbsp;et&nbsp;al.&nbsp;(2008)).</tt></dd></dl>

<dl><dt><a name="Diurnal-g2"><strong>g2</strong></a>(self)</dt><dd><tt>The&nbsp;constant&nbsp;gamma&nbsp;two&nbsp;twiddle&nbsp;(see&nbsp;Wahr&nbsp;et&nbsp;al.&nbsp;(2008)).</tt></dd></dl>

<dl><dt><a name="Diurnal-lambda_twiddle"><strong>lambda_twiddle</strong></a>(self)</dt><dd><tt>The&nbsp;complex&nbsp;frequency-dependent&nbsp;Lame&nbsp;parameter&nbsp;lambda&nbsp;for&nbsp;a&nbsp;Maxwell&nbsp;rheology</tt></dd></dl>

<dl><dt><a name="Diurnal-mu_twiddle"><strong>mu_twiddle</strong></a>(self)</dt><dd><tt>The&nbsp;complex&nbsp;frequency-dependent&nbsp;Lame&nbsp;parameter&nbsp;mu&nbsp;for&nbsp;a&nbsp;Maxwell&nbsp;rheology</tt></dd></dl>

<hr>
Data and other attributes inherited from <a href="SatStress.html#StressDef">StressDef</a>:<br>
<dl><dt><strong>love</strong> = &lt;SatStress.LoveNum instance at 0x25ee18&gt;</dl>

<dl><dt><strong>omega</strong> = 0.0</dl>

<dl><dt><strong>satellite</strong> = None</dl>

</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="LoveNum">class <strong>LoveNum</strong></a></font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>The&nbsp;degree&nbsp;2&nbsp;complex&nbsp;Love&nbsp;numbers:&nbsp;h2,&nbsp;k2,&nbsp;and&nbsp;l2,&nbsp;as&nbsp;complex&nbsp;numbers.<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="LoveNum-__init__"><strong>__init__</strong></a>(self, h2_real, h2_imag, k2_real, k2_imag, l2_real, l2_imag)</dt><dd><tt>Set&nbsp;the&nbsp;real&nbsp;and&nbsp;imaginary&nbsp;parts&nbsp;of&nbsp;the&nbsp;Love&nbsp;numbers.</tt></dd></dl>

<dl><dt><a name="LoveNum-__str__"><strong>__str__</strong></a>(self)</dt><dd><tt>Return&nbsp;a&nbsp;human&nbsp;readable&nbsp;string&nbsp;representation&nbsp;of&nbsp;the&nbsp;Love&nbsp;numbers</tt></dd></dl>

</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="NSR">class <strong>NSR</strong></a>(<a href="SatStress.html#StressDef">StressDef</a>)</font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>A&nbsp;derived&nbsp;class&nbsp;(descends&nbsp;from&nbsp;<a href="#StressDef">StressDef</a>)&nbsp;that&nbsp;represents&nbsp;the&nbsp;stresses&nbsp;that<br>
arise&nbsp;on&nbsp;the&nbsp;surface&nbsp;of&nbsp;an&nbsp;icy&nbsp;satellite&nbsp;due&nbsp;to&nbsp;the&nbsp;non-synchronous&nbsp;rotation&nbsp;of<br>
a&nbsp;decoupled&nbsp;icy&nbsp;shell&nbsp;floating&nbsp;atop&nbsp;an&nbsp;inviscid&nbsp;ocean&nbsp;over&nbsp;a&nbsp;synchronously<br>
rotating&nbsp;core.&nbsp;&nbsp;See&nbsp;detailed&nbsp;discussion&nbsp;in&nbsp;Wahr&nbsp;et&nbsp;al.&nbsp;(2008).<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="NSR-Tpp"><strong>Tpp</strong></a>(self, r, theta, phi, t)</dt><dd><tt>Calculates&nbsp;the&nbsp;Tau_{phi&nbsp;phi}&nbsp;(east-west)&nbsp;component&nbsp;of&nbsp;the&nbsp;stress&nbsp;tensor.</tt></dd></dl>

<dl><dt><a name="NSR-Tpt"><strong>Tpt</strong></a>(self, r, theta, phi, t)</dt><dd><tt>Calculates&nbsp;the&nbsp;Tau_{phi&nbsp;theta}&nbsp;(off-diagonal)&nbsp;component&nbsp;of&nbsp;the&nbsp;stress&nbsp;tensor.</tt></dd></dl>

<dl><dt><a name="NSR-Ttt"><strong>Ttt</strong></a>(self, r, theta, phi, t)</dt><dd><tt>Calculates&nbsp;the&nbsp;Tau_{theta&nbsp;theta}&nbsp;(north-south)&nbsp;component&nbsp;of&nbsp;the&nbsp;stress&nbsp;tensor.</tt></dd></dl>

<dl><dt><a name="NSR-__init__"><strong>__init__</strong></a>(self, satellite)</dt><dd><tt>Initialize&nbsp;the&nbsp;definition&nbsp;of&nbsp;the&nbsp;stresses&nbsp;due&nbsp;to&nbsp;<a href="#NSR">NSR</a>&nbsp;of&nbsp;the&nbsp;ice&nbsp;shell.<br>
&nbsp;<br>
The&nbsp;forcing&nbsp;frequency&nbsp;omega&nbsp;is&nbsp;the&nbsp;frequency&nbsp;with&nbsp;which&nbsp;a&nbsp;point&nbsp;on&nbsp;the<br>
surface&nbsp;passes&nbsp;through&nbsp;a&nbsp;single&nbsp;hemisphere,&nbsp;because&nbsp;the&nbsp;<a href="#NSR">NSR</a>&nbsp;stress&nbsp;field<br>
is&nbsp;degree&nbsp;2&nbsp;(that&nbsp;is,&nbsp;it's&nbsp;2x&nbsp;the&nbsp;expected&nbsp;omega&nbsp;from&nbsp;a&nbsp;full&nbsp;rotation)<br>
&nbsp;<br>
Because&nbsp;the&nbsp;core&nbsp;is&nbsp;not&nbsp;subject&nbsp;to&nbsp;the&nbsp;<a href="#NSR">NSR</a>&nbsp;forcing&nbsp;(it&nbsp;remains&nbsp;tidally<br>
locked&nbsp;and&nbsp;synchronously&nbsp;rotating),&nbsp;all&nbsp;stresses&nbsp;within&nbsp;it&nbsp;are&nbsp;presumed<br>
to&nbsp;relax&nbsp;away,&nbsp;allowing&nbsp;it&nbsp;to&nbsp;deform&nbsp;into&nbsp;a&nbsp;tri-axial&nbsp;ellipsoid,&nbsp;with<br>
its&nbsp;long&nbsp;axis&nbsp;pointing&nbsp;toward&nbsp;the&nbsp;parent&nbsp;planet.&nbsp;&nbsp;In&nbsp;order&nbsp;to&nbsp;allow&nbsp;for<br>
this&nbsp;relaxation&nbsp;the&nbsp;shear&nbsp;modulus&nbsp;(mu)&nbsp;of&nbsp;the&nbsp;core&nbsp;is&nbsp;set&nbsp;to&nbsp;an<br>
artificially&nbsp;low&nbsp;value&nbsp;for&nbsp;the&nbsp;purpose&nbsp;of&nbsp;the&nbsp;Love&nbsp;number&nbsp;calculation.<br>
This&nbsp;increases&nbsp;the&nbsp;magnitude&nbsp;of&nbsp;the&nbsp;radial&nbsp;deformation&nbsp;(and&nbsp;the&nbsp;Love<br>
number&nbsp;h2)&nbsp;significantly.&nbsp;&nbsp;See&nbsp;Wahr&nbsp;et&nbsp;al.&nbsp;(2008)&nbsp;for&nbsp;complete<br>
discussion.</tt></dd></dl>

<hr>
Methods inherited from <a href="SatStress.html#StressDef">StressDef</a>:<br>
<dl><dt><a name="NSR-Delta"><strong>Delta</strong></a>(self)</dt><dd><tt>Delta&nbsp;=&nbsp;lame_mu/(omega*viscosity),&nbsp;a&nbsp;measure&nbsp;of&nbsp;how&nbsp;viscous&nbsp;the&nbsp;response&nbsp;is.</tt></dd></dl>

<dl><dt><a name="NSR-Gamma"><strong>Gamma</strong></a>(self)</dt><dd><tt>The&nbsp;constant&nbsp;capital&nbsp;Gamma&nbsp;twiddle&nbsp;(see&nbsp;Wahr&nbsp;et&nbsp;al.&nbsp;(2008)).</tt></dd></dl>

<dl><dt><a name="NSR-Z"><strong>Z</strong></a>(self)</dt><dd><tt>A&nbsp;constant&nbsp;that&nbsp;sits&nbsp;in&nbsp;front&nbsp;of&nbsp;many&nbsp;terms&nbsp;in&nbsp;the&nbsp;potential</tt></dd></dl>

<dl><dt><a name="NSR-alpha"><strong>alpha</strong></a>(self)</dt><dd><tt>The&nbsp;constant&nbsp;alpha&nbsp;twiddle&nbsp;(see&nbsp;Wah&nbsp;et&nbsp;al.&nbsp;2008):<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3*lambda&nbsp;+&nbsp;2*mu<br>
alpha&nbsp;=&nbsp;---------------<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lambda&nbsp;+&nbsp;2*mu<br>
&nbsp;<br>
Complex&nbsp;and&nbsp;frequency&nbsp;dependent,&nbsp;as&nbsp;are&nbsp;lambda&nbsp;and&nbsp;mu.</tt></dd></dl>

<dl><dt><a name="NSR-b1"><strong>b1</strong></a>(self)</dt><dd><tt>The&nbsp;constant&nbsp;beta&nbsp;one&nbsp;twiddle&nbsp;(see&nbsp;Wahr&nbsp;et&nbsp;al.&nbsp;(2008)).</tt></dd></dl>

<dl><dt><a name="NSR-b2"><strong>b2</strong></a>(self)</dt><dd><tt>The&nbsp;constant&nbsp;beta&nbsp;two&nbsp;twiddle&nbsp;(see&nbsp;Wahr&nbsp;et&nbsp;al.&nbsp;(2008)).</tt></dd></dl>

<dl><dt><a name="NSR-calcLove"><strong>calcLove</strong></a>(self)</dt><dd><tt>Calculate&nbsp;the&nbsp;Love&nbsp;numbers&nbsp;for&nbsp;the&nbsp;satellite&nbsp;and&nbsp;the&nbsp;given&nbsp;forcing.<br>
&nbsp;<br>
At&nbsp;the&nbsp;moment&nbsp;this&nbsp;uses&nbsp;John&nbsp;Wahr's&nbsp;Fortran&nbsp;code,&nbsp;called&nbsp;externally,<br>
which&nbsp;is&nbsp;a&nbsp;total&nbsp;hack,&nbsp;and&nbsp;should&nbsp;be&nbsp;re-implemented,&nbsp;at&nbsp;the&nbsp;very&nbsp;least,<br>
by&nbsp;using&nbsp;F2Py&nbsp;to&nbsp;generate&nbsp;an&nbsp;interface&nbsp;to&nbsp;the&nbsp;program&nbsp;for&nbsp;direct<br>
calling&nbsp;from&nbsp;within&nbsp;this&nbsp;code.&nbsp;&nbsp;Really&nbsp;it&nbsp;would&nbsp;be&nbsp;better&nbsp;to&nbsp;re-write<br>
the&nbsp;whole&nbsp;code&nbsp;in&nbsp;Python&nbsp;so&nbsp;it's&nbsp;actually&nbsp;readable.<br>
&nbsp;<br>
Assumes&nbsp;we&nbsp;have&nbsp;a&nbsp;satellite&nbsp;object&nbsp;describing&nbsp;the&nbsp;structure&nbsp;of&nbsp;the&nbsp;body,<br>
a&nbsp;frequency&nbsp;(omega)&nbsp;to&nbsp;apply,&nbsp;and&nbsp;a&nbsp;path&nbsp;to&nbsp;love2.<br>
&nbsp;<br>
Must&nbsp;be&nbsp;defined&nbsp;separately&nbsp;for&nbsp;the&nbsp;different&nbsp;forcings,&nbsp;because&nbsp;the&nbsp;core<br>
is&nbsp;treated&nbsp;differently&nbsp;in&nbsp;different&nbsp;cases&nbsp;(in&nbsp;<a href="#NSR">NSR</a>,&nbsp;it&nbsp;behaves&nbsp;like&nbsp;a<br>
fluid)</tt></dd></dl>

<dl><dt><a name="NSR-g1"><strong>g1</strong></a>(self)</dt><dd><tt>The&nbsp;constant&nbsp;gamma&nbsp;one&nbsp;twiddle&nbsp;(see&nbsp;Wahr&nbsp;et&nbsp;al.&nbsp;(2008)).</tt></dd></dl>

<dl><dt><a name="NSR-g2"><strong>g2</strong></a>(self)</dt><dd><tt>The&nbsp;constant&nbsp;gamma&nbsp;two&nbsp;twiddle&nbsp;(see&nbsp;Wahr&nbsp;et&nbsp;al.&nbsp;(2008)).</tt></dd></dl>

<dl><dt><a name="NSR-lambda_twiddle"><strong>lambda_twiddle</strong></a>(self)</dt><dd><tt>The&nbsp;complex&nbsp;frequency-dependent&nbsp;Lame&nbsp;parameter&nbsp;lambda&nbsp;for&nbsp;a&nbsp;Maxwell&nbsp;rheology</tt></dd></dl>

<dl><dt><a name="NSR-mu_twiddle"><strong>mu_twiddle</strong></a>(self)</dt><dd><tt>The&nbsp;complex&nbsp;frequency-dependent&nbsp;Lame&nbsp;parameter&nbsp;mu&nbsp;for&nbsp;a&nbsp;Maxwell&nbsp;rheology</tt></dd></dl>

<hr>
Data and other attributes inherited from <a href="SatStress.html#StressDef">StressDef</a>:<br>
<dl><dt><strong>love</strong> = &lt;SatStress.LoveNum instance at 0x25ee18&gt;</dl>

<dl><dt><strong>omega</strong> = 0.0</dl>

<dl><dt><strong>satellite</strong> = None</dl>

</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="SatLayer">class <strong>SatLayer</strong></a></font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>Class&nbsp;describing&nbsp;a&nbsp;homogeneous&nbsp;material&nbsp;layer&nbsp;within&nbsp;a&nbsp;satellite.<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="SatLayer-__init__"><strong>__init__</strong></a>(self, satParams<font color="#909090">=None</font>, layer_n<font color="#909090">=0</font>)</dt><dd><tt>Set&nbsp;the&nbsp;values&nbsp;of&nbsp;parameters&nbsp;defining&nbsp;the&nbsp;a&nbsp;satellite&nbsp;layer.<br>
&nbsp;<br>
satParams&nbsp;is&nbsp;a&nbsp;dictionary&nbsp;constructed&nbsp;from&nbsp;name&nbsp;value&nbsp;pairs&nbsp;read&nbsp;in<br>
from&nbsp;a&nbsp;satellite&nbsp;specification&nbsp;file.<br>
&nbsp;<br>
layer_n&nbsp;indicates&nbsp;which&nbsp;layer&nbsp;in&nbsp;the&nbsp;satellite&nbsp;is&nbsp;being&nbsp;defined,&nbsp;with<br>
n=0&nbsp;indicating&nbsp;the&nbsp;center&nbsp;of&nbsp;the&nbsp;satellite,&nbsp;and&nbsp;increasing&nbsp;outward.<br>
The&nbsp;layer&nbsp;by&nbsp;itself&nbsp;has&nbsp;no&nbsp;indication&nbsp;of&nbsp;where&nbsp;within&nbsp;the&nbsp;satellite&nbsp;it<br>
resides.&nbsp;&nbsp;That&nbsp;information&nbsp;is&nbsp;contained&nbsp;in&nbsp;the&nbsp;ordering&nbsp;of&nbsp;the&nbsp;list&nbsp;of<br>
layers&nbsp;within&nbsp;the&nbsp;satellite&nbsp;object.<br>
&nbsp;<br>
The&nbsp;layer&nbsp;defining&nbsp;parameters&nbsp;are:<br>
&nbsp;<br>
*&nbsp;label:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;describing&nbsp;the&nbsp;layer&nbsp;(e.g.&nbsp;core)<br>
*&nbsp;density:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;density&nbsp;of&nbsp;the&nbsp;layer&nbsp;[kg&nbsp;m^-3]<br>
*&nbsp;lame_mu:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;real-valued&nbsp;Lame&nbsp;parameter&nbsp;mu&nbsp;(shear&nbsp;modulus)&nbsp;[Pa]<br>
*&nbsp;lame_lambda:&nbsp;real-valued&nbsp;Lame&nbsp;parameter&nbsp;lambda&nbsp;[Pa]<br>
*&nbsp;thickness:&nbsp;&nbsp;&nbsp;how&nbsp;thick&nbsp;the&nbsp;layer&nbsp;is,&nbsp;in&nbsp;[m]<br>
*&nbsp;viscosity:&nbsp;&nbsp;&nbsp;viscosity&nbsp;of&nbsp;the&nbsp;layer&nbsp;[Pa&nbsp;s]<br>
*&nbsp;tensile_str:&nbsp;tensile&nbsp;strength&nbsp;of&nbsp;the&nbsp;layer&nbsp;[Pa]<br>
&nbsp;<br>
There&nbsp;are&nbsp;also&nbsp;derived&nbsp;quantities&nbsp;that&nbsp;depend&nbsp;on&nbsp;the&nbsp;above&nbsp;parameters<br>
which&nbsp;are&nbsp;convenient&nbsp;to&nbsp;have&nbsp;available.&nbsp;&nbsp;They&nbsp;are&nbsp;implemented&nbsp;as&nbsp;the<br>
following&nbsp;methods:<br>
&nbsp;<br>
*&nbsp;<a href="#SatLayer-maxwell_time">maxwell_time</a>():&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;relaxation&nbsp;time&nbsp;of&nbsp;the&nbsp;material,&nbsp;equal&nbsp;to<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(viscosity/lame_mu).&nbsp;[s]<br>
&nbsp;<br>
*&nbsp;<a href="#SatLayer-bulk_modulus">bulk_modulus</a>():&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;bulk&nbsp;modulus&nbsp;(kappa)&nbsp;of&nbsp;the&nbsp;material.&nbsp;[Pa]<br>
&nbsp;<br>
*&nbsp;<a href="#SatLayer-youngs_modulus">youngs_modulus</a>():&nbsp;&nbsp;Young's&nbsp;modulus&nbsp;(E).&nbsp;[Pa]<br>
&nbsp;<br>
*&nbsp;<a href="#SatLayer-poissons_ratio">poissons_ratio</a>():&nbsp;&nbsp;Poisson's&nbsp;ratio&nbsp;(nu).<br>
&nbsp;<br>
*&nbsp;<a href="#SatLayer-p_wave_velocity">p_wave_velocity</a>():&nbsp;Velocity&nbsp;of&nbsp;a&nbsp;pressure&nbsp;wave&nbsp;in&nbsp;the&nbsp;material&nbsp;[m&nbsp;s^-1]</tt></dd></dl>

<dl><dt><a name="SatLayer-bulk_modulus"><strong>bulk_modulus</strong></a>(self)</dt><dd><tt>Bulk&nbsp;modulus&nbsp;(kappa)&nbsp;of&nbsp;the&nbsp;layer&nbsp;[Pa]</tt></dd></dl>

<dl><dt><a name="SatLayer-maxwell_time"><strong>maxwell_time</strong></a>(self)</dt><dd><tt>Maxwell&nbsp;relaxation&nbsp;time&nbsp;of&nbsp;the&nbsp;layer&nbsp;[s]</tt></dd></dl>

<dl><dt><a name="SatLayer-p_wave_velocity"><strong>p_wave_velocity</strong></a>(self)</dt><dd><tt>p_wave_velocity:&nbsp;velocity&nbsp;of&nbsp;a&nbsp;compression&nbsp;wave&nbsp;in&nbsp;the&nbsp;layer&nbsp;[m&nbsp;s^-1]</tt></dd></dl>

<dl><dt><a name="SatLayer-poissons_ratio"><strong>poissons_ratio</strong></a>(self)</dt><dd><tt>Poisson's&nbsp;ratio&nbsp;(nu)&nbsp;of&nbsp;the&nbsp;layer&nbsp;[Pa]</tt></dd></dl>

<dl><dt><a name="SatLayer-youngs_modulus"><strong>youngs_modulus</strong></a>(self)</dt><dd><tt>Young's&nbsp;modulus&nbsp;(E)&nbsp;of&nbsp;the&nbsp;layer&nbsp;[Pa]</tt></dd></dl>

</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="Satellite">class <strong>Satellite</strong></a></font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>A&nbsp;class&nbsp;describing&nbsp;the&nbsp;physical&nbsp;structure&nbsp;and&nbsp;context&nbsp;of&nbsp;a&nbsp;satellite.<br>
&nbsp;<br>
Defines&nbsp;a&nbsp;satellite's&nbsp;material&nbsp;properties,&nbsp;internal&nbsp;structure,&nbsp;orbital<br>
context,&nbsp;and&nbsp;the&nbsp;tidal&nbsp;forcings&nbsp;to&nbsp;which&nbsp;it&nbsp;is&nbsp;subjected.<br>
&nbsp;<br>
The&nbsp;<a href="#Satellite">Satellite</a>&nbsp;is&nbsp;initialized&nbsp;from&nbsp;an&nbsp;input&nbsp;file&nbsp;consisting&nbsp;of&nbsp;name=value<br>
pairs,&nbsp;one&nbsp;per&nbsp;line&nbsp;(as&nbsp;described&nbsp;under&nbsp;nvf2dict).&nbsp;&nbsp;The&nbsp;file&nbsp;must&nbsp;define<br>
the&nbsp;following&nbsp;parameters,&nbsp;all&nbsp;of&nbsp;which&nbsp;are&nbsp;specified&nbsp;in&nbsp;SI&nbsp;(MKS)&nbsp;units,<br>
with&nbsp;the&nbsp;exception&nbsp;of&nbsp;NSR_PERIOD_YEARS,&nbsp;which&nbsp;is&nbsp;in&nbsp;terrestrial&nbsp;years.<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SYSTEM_NAME:&nbsp;&nbsp;A&nbsp;string&nbsp;identifying&nbsp;the&nbsp;planetary&nbsp;system,&nbsp;e.g.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JupiterEuropa.<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PLANET_MASS:&nbsp;&nbsp;The&nbsp;mass&nbsp;of&nbsp;the&nbsp;planet&nbsp;the&nbsp;satellite&nbsp;orbits&nbsp;[kg].<br>
&nbsp;<br>
&nbsp;&nbsp;ORBIT_ECCENTRICITY:&nbsp;&nbsp;The&nbsp;eccentricity&nbsp;of&nbsp;the&nbsp;satellite's&nbsp;orbit.&nbsp;&nbsp;Must&nbsp;not<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exceed&nbsp;0.25.<br>
&nbsp;<br>
ORBIT_SEMIMAJOR_AXIS:&nbsp;&nbsp;The&nbsp;semimajor&nbsp;axis&nbsp;of&nbsp;the&nbsp;satellite's&nbsp;orbit&nbsp;[m].<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NUM_LAYERS:&nbsp;&nbsp;The&nbsp;number&nbsp;of&nbsp;layers&nbsp;within&nbsp;the&nbsp;satellite.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Currently&nbsp;NUM_LAYERS&nbsp;must&nbsp;equal&nbsp;4,&nbsp;because&nbsp;that&nbsp;is<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;what&nbsp;the&nbsp;Love&nbsp;number&nbsp;code&nbsp;expects)<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NSR_PERIOD:&nbsp;&nbsp;The&nbsp;time&nbsp;it&nbsp;takes&nbsp;for&nbsp;the&nbsp;satellite's&nbsp;icy&nbsp;shell&nbsp;to<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;undergo&nbsp;one&nbsp;full&nbsp;rotation&nbsp;[s]<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LOVE_PATH:&nbsp;&nbsp;The&nbsp;absolute&nbsp;path&nbsp;to&nbsp;the&nbsp;program&nbsp;used&nbsp;to&nbsp;calculate<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;frequency-dependent&nbsp;degree-2&nbsp;Love&nbsp;numbers.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Currently&nbsp;this&nbsp;code&nbsp;is&nbsp;one&nbsp;provided&nbsp;by&nbsp;John&nbsp;Wahr.<br>
&nbsp;<br>
In&nbsp;addition&nbsp;to&nbsp;the&nbsp;above&nbsp;parameters,&nbsp;the&nbsp;input&nbsp;file&nbsp;must&nbsp;define&nbsp;several<br>
materially&nbsp;homogeneous&nbsp;layers,&nbsp;describing&nbsp;the&nbsp;internal&nbsp;structure&nbsp;of&nbsp;the<br>
satellite.&nbsp;&nbsp;Currently,&nbsp;due&nbsp;to&nbsp;the&nbsp;way&nbsp;the&nbsp;Love&nbsp;numbers&nbsp;are&nbsp;calculated,<br>
four&nbsp;layeres&nbsp;must&nbsp;be&nbsp;specified:&nbsp;core,&nbsp;ocean,&nbsp;ice_lower,&nbsp;and&nbsp;ice_upper.<br>
&nbsp;<br>
Each&nbsp;layer&nbsp;is&nbsp;composed&nbsp;of&nbsp;seven&nbsp;parameter&nbsp;values,&nbsp;and&nbsp;each&nbsp;layer&nbsp;has&nbsp;a<br>
unique&nbsp;numeric&nbsp;identifier,&nbsp;appended&nbsp;to&nbsp;the&nbsp;end&nbsp;of&nbsp;all&nbsp;the&nbsp;names&nbsp;of&nbsp;its<br>
parameters.&nbsp;&nbsp;Layer&nbsp;zero&nbsp;is&nbsp;the&nbsp;core,&nbsp;with&nbsp;the&nbsp;number&nbsp;increasing&nbsp;as&nbsp;the<br>
satellite&nbsp;is&nbsp;built&nbsp;up&nbsp;toward&nbsp;the&nbsp;surface.&nbsp;&nbsp;In&nbsp;the&nbsp;below&nbsp;list&nbsp;the&nbsp;"X"&nbsp;at&nbsp;the<br>
end&nbsp;of&nbsp;the&nbsp;parameter&nbsp;names&nbsp;should&nbsp;be&nbsp;replaced&nbsp;with&nbsp;the&nbsp;number&nbsp;of&nbsp;the&nbsp;layer.<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LABEL_X:&nbsp;&nbsp;A&nbsp;string&nbsp;identifying&nbsp;the&nbsp;layer,&nbsp;e.g.&nbsp;"ocean"&nbsp;or&nbsp;"core"<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DENSITY_X:&nbsp;&nbsp;The&nbsp;density&nbsp;of&nbsp;the&nbsp;layer&nbsp;at&nbsp;zero&nbsp;pressure&nbsp;[m&nbsp;kg^-3]<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAME_MU_X:&nbsp;&nbsp;The&nbsp;real-valued&nbsp;Lame&nbsp;parameter&nbsp;mu&nbsp;(shear&nbsp;modulus)&nbsp;[Pa]<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LAME_LAMBDA_X:&nbsp;&nbsp;The&nbsp;real-valued&nbsp;Lame&nbsp;parameter&nbsp;lambda&nbsp;[Pa]<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;THICKNESS_X:&nbsp;&nbsp;The&nbsp;thickness&nbsp;of&nbsp;the&nbsp;layer&nbsp;[m]<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VISCOSITY_X:&nbsp;&nbsp;The&nbsp;viscosity&nbsp;of&nbsp;the&nbsp;layer&nbsp;[Pa&nbsp;s]<br>
&nbsp;<br>
TENSILE_STRENGTH_X:&nbsp;&nbsp;The&nbsp;tensile&nbsp;strength&nbsp;of&nbsp;the&nbsp;layer&nbsp;[Pa]<br>
&nbsp;<br>
Not&nbsp;all&nbsp;parameters&nbsp;need&nbsp;necessarily&nbsp;be&nbsp;defined&nbsp;for&nbsp;all&nbsp;layers.&nbsp;&nbsp;For<br>
example,&nbsp;the&nbsp;tensile&nbsp;strength&nbsp;and&nbsp;viscosity&nbsp;of&nbsp;the&nbsp;ocean&nbsp;are&nbsp;irrelevant&nbsp;to<br>
the&nbsp;calculation.<br>
&nbsp;<br>
Derived&nbsp;Parameters:<br>
===================<br>
The&nbsp;formulae&nbsp;used&nbsp;to&nbsp;calculate&nbsp;the&nbsp;tidal&nbsp;stresses&nbsp;require&nbsp;some&nbsp;parameter<br>
values&nbsp;which&nbsp;depend&nbsp;on&nbsp;those&nbsp;defined&nbsp;above,&nbsp;such&nbsp;as&nbsp;the&nbsp;satellite's&nbsp;mass,<br>
radius,&nbsp;and&nbsp;surface&nbsp;gravity.&nbsp;&nbsp;These&nbsp;derived&nbsp;quantities&nbsp;are&nbsp;implemented&nbsp;as<br>
the&nbsp;following&nbsp;methods:<br>
&nbsp;<br>
*&nbsp;<a href="#Satellite-mass">mass</a>()<br>
*&nbsp;<a href="#Satellite-radius">radius</a>()<br>
*&nbsp;<a href="#Satellite-density">density</a>()<br>
*&nbsp;<a href="#Satellite-surface_gravity">surface_gravity</a>()<br>
*&nbsp;<a href="#Satellite-orbit_period">orbit_period</a>()<br>
*&nbsp;<a href="#Satellite-mean_motion">mean_motion</a>()<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="Satellite-__init__"><strong>__init__</strong></a>(self, satFile)</dt><dd><tt>Initialize&nbsp;the&nbsp;<a href="#Satellite">Satellite</a>&nbsp;object&nbsp;from&nbsp;a&nbsp;satFile</tt></dd></dl>

<dl><dt><a name="Satellite-__str__"><strong>__str__</strong></a>(self)</dt><dd><tt>Output&nbsp;a&nbsp;satellite&nbsp;definition&nbsp;file&nbsp;equivalent&nbsp;to&nbsp;the&nbsp;object.</tt></dd></dl>

<dl><dt><a name="Satellite-density"><strong>density</strong></a>(self)</dt><dd><tt>Calculate&nbsp;the&nbsp;mean&nbsp;density&nbsp;of&nbsp;the&nbsp;satellite&nbsp;in&nbsp;[kg&nbsp;m^-3].</tt></dd></dl>

<dl><dt><a name="Satellite-mass"><strong>mass</strong></a>(self)</dt><dd><tt>Calculate&nbsp;the&nbsp;mass&nbsp;of&nbsp;the&nbsp;satellite.</tt></dd></dl>

<dl><dt><a name="Satellite-mean_motion"><strong>mean_motion</strong></a>(self)</dt><dd><tt>Calculate&nbsp;the&nbsp;orbital&nbsp;mean&nbsp;motion&nbsp;of&nbsp;the&nbsp;satellite&nbsp;[rad&nbsp;s^-1].</tt></dd></dl>

<dl><dt><a name="Satellite-orbit_period"><strong>orbit_period</strong></a>(self)</dt><dd><tt>Calculate&nbsp;the&nbsp;satellite's&nbsp;Keplerian&nbsp;orbital&nbsp;period&nbsp;in&nbsp;seconds.</tt></dd></dl>

<dl><dt><a name="Satellite-radius"><strong>radius</strong></a>(self)</dt><dd><tt>Calculate&nbsp;the&nbsp;radius&nbsp;of&nbsp;the&nbsp;satellite.</tt></dd></dl>

<dl><dt><a name="Satellite-surface_gravity"><strong>surface_gravity</strong></a>(self)</dt><dd><tt>Calculate&nbsp;the&nbsp;satellite's&nbsp;surface&nbsp;gravitational&nbsp;acceleration&nbsp;in&nbsp;[m&nbsp;s^-2].</tt></dd></dl>

</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="StressCalc">class <strong>StressCalc</strong></a></font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>An&nbsp;object&nbsp;that&nbsp;calculates&nbsp;the&nbsp;stresses&nbsp;at&nbsp;a&nbsp;given&nbsp;point&nbsp;on&nbsp;a&nbsp;satellite.<br>
&nbsp;<br>
This&nbsp;class&nbsp;also&nbsp;specifies&nbsp;a&nbsp;variety&nbsp;of&nbsp;different&nbsp;forms&nbsp;for&nbsp;the&nbsp;stresses<br>
which&nbsp;are&nbsp;output,&nbsp;as&nbsp;methods:<br>
&nbsp;<br>
&nbsp;&nbsp;*&nbsp;<a href="#StressCalc-tensor">tensor</a>():&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;symmetric&nbsp;2x2&nbsp;surface&nbsp;(membrane)&nbsp;stress<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tensor&nbsp;Tau.<br>
&nbsp;<br>
&nbsp;&nbsp;*&nbsp;<a href="#StressCalc-principal_components">principal_components</a>():&nbsp;&nbsp;Tau&nbsp;diagonalized,&nbsp;and&nbsp;decomposed&nbsp;into&nbsp;a&nbsp;system<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;two&nbsp;unit-length&nbsp;eigenvectors&nbsp;representing<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;directions&nbsp;of&nbsp;the&nbsp;most&nbsp;and&nbsp;least&nbsp;tensile<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;principal&nbsp;components&nbsp;of&nbsp;the&nbsp;stresses,&nbsp;and&nbsp;two<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eigenvalues&nbsp;representing&nbsp;the&nbsp;magnitude&nbsp;of&nbsp;those<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stresses&nbsp;(tension&nbsp;is&nbsp;taken&nbsp;as&nbsp;positive).<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="StressCalc-__init__"><strong>__init__</strong></a>(self, stressdefs)</dt><dd><tt>Defines&nbsp;the&nbsp;list&nbsp;of&nbsp;stresses&nbsp;which&nbsp;are&nbsp;to&nbsp;be&nbsp;calculated&nbsp;at&nbsp;a&nbsp;given&nbsp;point.</tt></dd></dl>

<dl><dt><a name="StressCalc-magnitude_azimuth"><strong>magnitude_azimuth</strong></a>(self, r, theta, phi, t)</dt><dd><tt>Describes&nbsp;stresses&nbsp;in&nbsp;radial&nbsp;coordinates&nbsp;(azimuth,&nbsp;magnitude)<br>
&nbsp;<br>
This&nbsp;form&nbsp;is&nbsp;left&nbsp;as&nbsp;an&nbsp;exercise&nbsp;for&nbsp;Simon&nbsp;Kattenhorn's&nbsp;students.</tt></dd></dl>

<dl><dt><a name="StressCalc-principal_components"><strong>principal_components</strong></a>(self, r, theta, phi, t)</dt><dd><tt>Calculates&nbsp;surface&nbsp;stresses&nbsp;and&nbsp;returns&nbsp;them&nbsp;principal&nbsp;components.<br>
&nbsp;<br>
Diagonalizes&nbsp;the&nbsp;stress&nbsp;tensor,&nbsp;and&nbsp;returns&nbsp;eigenvalues&nbsp;(stresss<br>
magnitudes)&nbsp;and&nbsp;eigen&nbsp;vectors&nbsp;(stress&nbsp;orientations)&nbsp;such&nbsp;that&nbsp;the<br>
eigenvectors&nbsp;are&nbsp;normalized&nbsp;to&nbsp;have&nbsp;unit&nbsp;length,&nbsp;and&nbsp;such&nbsp;that&nbsp;the<br>
first&nbsp;one&nbsp;listed&nbsp;has&nbsp;the&nbsp;greater&nbsp;(more&nbsp;tensile)&nbsp;magnitude:<br>
&nbsp;<br>
(mag1,&nbsp;theta1,&nbsp;phi1,&nbsp;mag2,&nbsp;theta2,&nbsp;phi2)<br>
&nbsp;<br>
where&nbsp;mag1&nbsp;&gt;&nbsp;mag2&nbsp;(tension&nbsp;taken&nbsp;as&nbsp;positive),&nbsp;and&nbsp;thetaN,&nbsp;phiN&nbsp;are&nbsp;the<br>
north-south&nbsp;and&nbsp;east-west&nbsp;components&nbsp;of&nbsp;each&nbsp;of&nbsp;the&nbsp;two&nbsp;unit<br>
eigenvectors&nbsp;(principal&nbsp;components).<br>
&nbsp;<br>
TODO:&nbsp;Needs&nbsp;to&nbsp;be&nbsp;able&nbsp;to&nbsp;deal&nbsp;with&nbsp;tau[phi][th]==0...</tt></dd></dl>

<dl><dt><a name="StressCalc-tensor"><strong>tensor</strong></a>(self, r, theta, phi, t)</dt><dd><tt>Calculates&nbsp;surface&nbsp;stresses&nbsp;and&nbsp;returns&nbsp;them&nbsp;as&nbsp;a&nbsp;2x2&nbsp;stress&nbsp;tensor.</tt></dd></dl>

</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="StressDef">class <strong>StressDef</strong></a></font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>An&nbsp;object&nbsp;that&nbsp;defines&nbsp;a&nbsp;stress&nbsp;field,&nbsp;depending&nbsp;on&nbsp;the&nbsp;satellite.<br>
&nbsp;<br>
Different&nbsp;tidal&nbsp;forcings&nbsp;are&nbsp;specified&nbsp;as&nbsp;sub-classes&nbsp;of&nbsp;this&nbsp;superclass&nbsp;(one<br>
for&nbsp;each&nbsp;separate&nbsp;forcing).&nbsp;&nbsp;Currently&nbsp;only&nbsp;the&nbsp;<a href="#NSR">NSR</a>&nbsp;and&nbsp;<a href="#Diurnal">Diurnal</a>&nbsp;forcings&nbsp;have<br>
been&nbsp;coded&nbsp;up&nbsp;(see&nbsp;Wahr&nbsp;et&nbsp;al.&nbsp;2008&nbsp;for&nbsp;a&nbsp;discussion&nbsp;of&nbsp;those&nbsp;forcings)<br>
&nbsp;<br>
Time&nbsp;is&nbsp;specified&nbsp;in&nbsp;seconds,&nbsp;with&nbsp;zero&nbsp;occuring&nbsp;at&nbsp;periapse,&nbsp;in&nbsp;order&nbsp;to&nbsp;be<br>
compatible&nbsp;with&nbsp;the&nbsp;future&nbsp;inclusion&nbsp;of&nbsp;stressing&nbsp;mechanisms&nbsp;which&nbsp;may&nbsp;have<br>
explicit&nbsp;time&nbsp;dependence&nbsp;instead&nbsp;of&nbsp;being&nbsp;a&nbsp;function&nbsp;of&nbsp;the&nbsp;satellite's&nbsp;orbital<br>
position&nbsp;(e.g.&nbsp;a&nbsp;true&nbsp;polar&nbsp;wander&nbsp;trajectory).<br>
&nbsp;<br>
Location&nbsp;is&nbsp;specified&nbsp;within&nbsp;a&nbsp;polar&nbsp;coordinate&nbsp;system&nbsp;having&nbsp;its&nbsp;origin&nbsp;at&nbsp;the<br>
satellite's&nbsp;center&nbsp;of&nbsp;mass,&nbsp;using&nbsp;the&nbsp;following&nbsp;three&nbsp;variables:<br>
&nbsp;<br>
radius&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(r):&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;distance&nbsp;between&nbsp;the&nbsp;a&nbsp;point&nbsp;and&nbsp;the&nbsp;center&nbsp;of<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mass&nbsp;of&nbsp;the&nbsp;satellite.&nbsp;&nbsp;Because&nbsp;the&nbsp;model&nbsp;currently&nbsp;only<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;calculates&nbsp;membrane&nbsp;stresses&nbsp;at&nbsp;the&nbsp;satellite's&nbsp;surface,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this&nbsp;should&nbsp;be&nbsp;set&nbsp;to&nbsp;satellite.radius(),&nbsp;though&nbsp;it&nbsp;is<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;presently&nbsp;ignored&nbsp;in&nbsp;the&nbsp;actual&nbsp;calculation.<br>
&nbsp;<br>
co-latitude&nbsp;(theta):&nbsp;The&nbsp;arc&nbsp;separating&nbsp;a&nbsp;point&nbsp;on&nbsp;the&nbsp;surface&nbsp;of&nbsp;the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;satellite&nbsp;from&nbsp;the&nbsp;north&nbsp;pole&nbsp;(0&nbsp;&lt;&nbsp;theta&nbsp;&lt;&nbsp;pi).<br>
&nbsp;<br>
longitude&nbsp;&nbsp;&nbsp;(phi):&nbsp;&nbsp;&nbsp;The&nbsp;arc&nbsp;separating&nbsp;the&nbsp;meridian&nbsp;of&nbsp;a&nbsp;point&nbsp;and&nbsp;the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;meridian&nbsp;which&nbsp;passes&nbsp;under&nbsp;the&nbsp;average&nbsp;location&nbsp;of<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;primary&nbsp;(planet)&nbsp;in&nbsp;the&nbsp;sky&nbsp;over&nbsp;the&nbsp;course&nbsp;of&nbsp;an<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;orbit&nbsp;(0&nbsp;&lt;&nbsp;phi&nbsp;&lt;&nbsp;2&nbsp;pi).&nbsp;&nbsp;East&nbsp;is&nbsp;taken&nbsp;as&nbsp;positive.<br>
&nbsp;<br>
Each&nbsp;subclass&nbsp;much&nbsp;define&nbsp;at&nbsp;the&nbsp;three&nbsp;components&nbsp;of&nbsp;the&nbsp;membrane&nbsp;stress<br>
tensor,&nbsp;Ttt,&nbsp;Tpp,&nbsp;and&nbsp;Tpt&nbsp;(the&nbsp;north-south,&nbsp;east-west,&nbsp;and&nbsp;shear&nbsp;stress<br>
components)&nbsp;as&nbsp;methods.<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="StressDef-Delta"><strong>Delta</strong></a>(self)</dt><dd><tt>Delta&nbsp;=&nbsp;lame_mu/(omega*viscosity),&nbsp;a&nbsp;measure&nbsp;of&nbsp;how&nbsp;viscous&nbsp;the&nbsp;response&nbsp;is.</tt></dd></dl>

<dl><dt><a name="StressDef-Gamma"><strong>Gamma</strong></a>(self)</dt><dd><tt>The&nbsp;constant&nbsp;capital&nbsp;Gamma&nbsp;twiddle&nbsp;(see&nbsp;Wahr&nbsp;et&nbsp;al.&nbsp;(2008)).</tt></dd></dl>

<dl><dt><a name="StressDef-Tpp"><strong>Tpp</strong></a>(self, r, theta, phi, t)</dt><dd><tt>Calculates&nbsp;the&nbsp;Tau_{phi&nbsp;phi}&nbsp;(east-west)&nbsp;component&nbsp;of&nbsp;the&nbsp;stress&nbsp;tensor.<br>
&nbsp;<br>
In&nbsp;this&nbsp;superclass,&nbsp;this&nbsp;is&nbsp;a&nbsp;purely&nbsp;virtual&nbsp;method&nbsp;-&nbsp;it&nbsp;must&nbsp;be&nbsp;defined&nbsp;by&nbsp;the<br>
subclasses&nbsp;that&nbsp;describe&nbsp;particular&nbsp;tidal&nbsp;stresses.</tt></dd></dl>

<dl><dt><a name="StressDef-Tpt"><strong>Tpt</strong></a>(self, r, theta, phi, t)</dt><dd><tt>Calculates&nbsp;the&nbsp;Tau_{phi&nbsp;theta}&nbsp;(off-diagonal)&nbsp;component&nbsp;of&nbsp;the&nbsp;stress&nbsp;tensor.<br>
&nbsp;<br>
In&nbsp;this&nbsp;superclass,&nbsp;this&nbsp;is&nbsp;a&nbsp;purely&nbsp;virtual&nbsp;method&nbsp;-&nbsp;it&nbsp;must&nbsp;be&nbsp;defined&nbsp;by&nbsp;the<br>
subclasses&nbsp;that&nbsp;describe&nbsp;particular&nbsp;tidal&nbsp;stresses.</tt></dd></dl>

<dl><dt><a name="StressDef-Ttt"><strong>Ttt</strong></a>(self, r, theta, phi, t)</dt><dd><tt>Calculates&nbsp;the&nbsp;Tau_{theta&nbsp;theta}&nbsp;(north-south)&nbsp;component&nbsp;of&nbsp;the&nbsp;stress&nbsp;tensor.<br>
&nbsp;<br>
In&nbsp;this&nbsp;superclass,&nbsp;this&nbsp;is&nbsp;a&nbsp;purely&nbsp;virtual&nbsp;method&nbsp;-&nbsp;it&nbsp;must&nbsp;be&nbsp;defined&nbsp;by&nbsp;the<br>
subclasses&nbsp;that&nbsp;describe&nbsp;particular&nbsp;tidal&nbsp;stresses.</tt></dd></dl>

<dl><dt><a name="StressDef-Z"><strong>Z</strong></a>(self)</dt><dd><tt>A&nbsp;constant&nbsp;that&nbsp;sits&nbsp;in&nbsp;front&nbsp;of&nbsp;many&nbsp;terms&nbsp;in&nbsp;the&nbsp;potential</tt></dd></dl>

<dl><dt><a name="StressDef-alpha"><strong>alpha</strong></a>(self)</dt><dd><tt>The&nbsp;constant&nbsp;alpha&nbsp;twiddle&nbsp;(see&nbsp;Wah&nbsp;et&nbsp;al.&nbsp;2008):<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3*lambda&nbsp;+&nbsp;2*mu<br>
alpha&nbsp;=&nbsp;---------------<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lambda&nbsp;+&nbsp;2*mu<br>
&nbsp;<br>
Complex&nbsp;and&nbsp;frequency&nbsp;dependent,&nbsp;as&nbsp;are&nbsp;lambda&nbsp;and&nbsp;mu.</tt></dd></dl>

<dl><dt><a name="StressDef-b1"><strong>b1</strong></a>(self)</dt><dd><tt>The&nbsp;constant&nbsp;beta&nbsp;one&nbsp;twiddle&nbsp;(see&nbsp;Wahr&nbsp;et&nbsp;al.&nbsp;(2008)).</tt></dd></dl>

<dl><dt><a name="StressDef-b2"><strong>b2</strong></a>(self)</dt><dd><tt>The&nbsp;constant&nbsp;beta&nbsp;two&nbsp;twiddle&nbsp;(see&nbsp;Wahr&nbsp;et&nbsp;al.&nbsp;(2008)).</tt></dd></dl>

<dl><dt><a name="StressDef-calcLove"><strong>calcLove</strong></a>(self)</dt><dd><tt>Calculate&nbsp;the&nbsp;Love&nbsp;numbers&nbsp;for&nbsp;the&nbsp;satellite&nbsp;and&nbsp;the&nbsp;given&nbsp;forcing.<br>
&nbsp;<br>
At&nbsp;the&nbsp;moment&nbsp;this&nbsp;uses&nbsp;John&nbsp;Wahr's&nbsp;Fortran&nbsp;code,&nbsp;called&nbsp;externally,<br>
which&nbsp;is&nbsp;a&nbsp;total&nbsp;hack,&nbsp;and&nbsp;should&nbsp;be&nbsp;re-implemented,&nbsp;at&nbsp;the&nbsp;very&nbsp;least,<br>
by&nbsp;using&nbsp;F2Py&nbsp;to&nbsp;generate&nbsp;an&nbsp;interface&nbsp;to&nbsp;the&nbsp;program&nbsp;for&nbsp;direct<br>
calling&nbsp;from&nbsp;within&nbsp;this&nbsp;code.&nbsp;&nbsp;Really&nbsp;it&nbsp;would&nbsp;be&nbsp;better&nbsp;to&nbsp;re-write<br>
the&nbsp;whole&nbsp;code&nbsp;in&nbsp;Python&nbsp;so&nbsp;it's&nbsp;actually&nbsp;readable.<br>
&nbsp;<br>
Assumes&nbsp;we&nbsp;have&nbsp;a&nbsp;satellite&nbsp;object&nbsp;describing&nbsp;the&nbsp;structure&nbsp;of&nbsp;the&nbsp;body,<br>
a&nbsp;frequency&nbsp;(omega)&nbsp;to&nbsp;apply,&nbsp;and&nbsp;a&nbsp;path&nbsp;to&nbsp;love2.<br>
&nbsp;<br>
Must&nbsp;be&nbsp;defined&nbsp;separately&nbsp;for&nbsp;the&nbsp;different&nbsp;forcings,&nbsp;because&nbsp;the&nbsp;core<br>
is&nbsp;treated&nbsp;differently&nbsp;in&nbsp;different&nbsp;cases&nbsp;(in&nbsp;<a href="#NSR">NSR</a>,&nbsp;it&nbsp;behaves&nbsp;like&nbsp;a<br>
fluid)</tt></dd></dl>

<dl><dt><a name="StressDef-g1"><strong>g1</strong></a>(self)</dt><dd><tt>The&nbsp;constant&nbsp;gamma&nbsp;one&nbsp;twiddle&nbsp;(see&nbsp;Wahr&nbsp;et&nbsp;al.&nbsp;(2008)).</tt></dd></dl>

<dl><dt><a name="StressDef-g2"><strong>g2</strong></a>(self)</dt><dd><tt>The&nbsp;constant&nbsp;gamma&nbsp;two&nbsp;twiddle&nbsp;(see&nbsp;Wahr&nbsp;et&nbsp;al.&nbsp;(2008)).</tt></dd></dl>

<dl><dt><a name="StressDef-lambda_twiddle"><strong>lambda_twiddle</strong></a>(self)</dt><dd><tt>The&nbsp;complex&nbsp;frequency-dependent&nbsp;Lame&nbsp;parameter&nbsp;lambda&nbsp;for&nbsp;a&nbsp;Maxwell&nbsp;rheology</tt></dd></dl>

<dl><dt><a name="StressDef-mu_twiddle"><strong>mu_twiddle</strong></a>(self)</dt><dd><tt>The&nbsp;complex&nbsp;frequency-dependent&nbsp;Lame&nbsp;parameter&nbsp;mu&nbsp;for&nbsp;a&nbsp;Maxwell&nbsp;rheology</tt></dd></dl>

<hr>
Data and other attributes defined here:<br>
<dl><dt><strong>love</strong> = &lt;SatStress.LoveNum instance at 0x25ee18&gt;</dl>

<dl><dt><strong>omega</strong> = 0.0</dl>

<dl><dt><strong>satellite</strong> = None</dl>

</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
    
<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl><dt><a name="-nvf2dict"><strong>nvf2dict</strong></a>(nvf, comment<font color="#909090">='#'</font>)</dt><dd><tt>Reads&nbsp;a&nbsp;file&nbsp;object&nbsp;listing&nbsp;NAME=VALUE&nbsp;pairs,&nbsp;creating&nbsp;a&nbsp;Python&nbsp;dictionary.<br>
&nbsp;<br>
The&nbsp;file&nbsp;should&nbsp;contain&nbsp;a&nbsp;series&nbsp;of&nbsp;NAME=VALUE&nbsp;pairs,&nbsp;one&nbsp;per&nbsp;line.&nbsp;&nbsp;Blank<br>
lines&nbsp;are&nbsp;ignored,&nbsp;as&nbsp;are&nbsp;lines&nbsp;beginning&nbsp;with&nbsp;the&nbsp;comment&nbsp;character<br>
(assumed&nbsp;to&nbsp;be&nbsp;the&nbsp;pound&nbsp;or&nbsp;hash&nbsp;symbol&nbsp;'#'&nbsp;unless&nbsp;otherwise&nbsp;specified).<br>
End&nbsp;of&nbsp;line&nbsp;comments&nbsp;are&nbsp;also&nbsp;stripped.&nbsp;&nbsp;String&nbsp;values&nbsp;should&nbsp;not&nbsp;be&nbsp;quoted<br>
in&nbsp;the&nbsp;file.&nbsp;&nbsp;Names&nbsp;are&nbsp;case&nbsp;sensitive.<br>
&nbsp;<br>
Returns&nbsp;a&nbsp;Python&nbsp;dictionary&nbsp;that&nbsp;uses&nbsp;the&nbsp;NAMEs&nbsp;as&nbsp;keys,&nbsp;with&nbsp;the&nbsp;VALUEs&nbsp;as<br>
values,&nbsp;and&nbsp;so&nbsp;all&nbsp;Python&nbsp;limitations&nbsp;on&nbsp;what&nbsp;can&nbsp;be&nbsp;used&nbsp;as&nbsp;a&nbsp;dictionary<br>
key&nbsp;apply&nbsp;to&nbsp;the&nbsp;NAME&nbsp;fields.<br>
&nbsp;<br>
If&nbsp;a&nbsp;VALUE&nbsp;can&nbsp;be&nbsp;converted&nbsp;to&nbsp;a&nbsp;float,&nbsp;it&nbsp;is,&nbsp;everything&nbsp;else&nbsp;is&nbsp;left&nbsp;as&nbsp;a<br>
string,&nbsp;with&nbsp;leading&nbsp;and&nbsp;trailing&nbsp;whitespace&nbsp;stripped.<br>
&nbsp;<br>
Raises&nbsp;exceptions&nbsp;if:<br>
&nbsp;&nbsp;-&nbsp;a&nbsp;non-comment&nbsp;line&nbsp;is&nbsp;found&nbsp;not&nbsp;to&nbsp;contain&nbsp;a&nbsp;'='&nbsp;character<br>
&nbsp;&nbsp;-&nbsp;there&nbsp;are&nbsp;no&nbsp;alphanumeric&nbsp;characters&nbsp;on&nbsp;one&nbsp;side&nbsp;of&nbsp;the&nbsp;'='<br>
&nbsp;&nbsp;-&nbsp;the&nbsp;NAME&nbsp;cannot&nbsp;be&nbsp;used&nbsp;as&nbsp;a&nbsp;key&nbsp;in&nbsp;a&nbsp;dictionary.</tt></dd></dl>
 <dl><dt><a name="-testStress"><strong>testStress</strong></a>()</dt><dd><tt>A&nbsp;demonstration&nbsp;of&nbsp;how&nbsp;to&nbsp;use&nbsp;SatStress.py&nbsp;to&nbsp;do&nbsp;a&nbsp;calculation.</tt></dd></dl>
</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
    
<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><strong>__author__</strong> = 'Zane Selvans &lt;zane@ideotrope.org&gt;'<br>
<strong>__credits__</strong> = 'Developed at the University of Colorado at Bould... PhD thesis research, which was funded by NASA.  '<br>
<strong>__date__</strong> = 'Tue Mar  4 16:22:03 PST 2008'</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#7799ee">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Author</strong></big></font></td></tr>
    
<tr><td bgcolor="#7799ee"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%">Zane&nbsp;Selvans&nbsp;&lt;zane@ideotrope.org&gt;</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#7799ee">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Credits</strong></big></font></td></tr>
    
<tr><td bgcolor="#7799ee"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%">Developed&nbsp;at&nbsp;the&nbsp;University&nbsp;of&nbsp;Colorado&nbsp;at&nbsp;Boulder&nbsp;in&nbsp;the&nbsp;course&nbsp;of&nbsp;my&nbsp;PhD&nbsp;thesis&nbsp;research,&nbsp;which&nbsp;was&nbsp;funded&nbsp;by&nbsp;NASA.&nbsp;&nbsp;</td></tr></table>
</body></html>